package org.niit

object ScalaDayOne {

  def main(args: Array[String]): Unit = {
    //-----------------------------------val(常量，即不可变)和var(变量，可变)的使用-----------------------------------
//    var a = 1
//    a = a + 1
//    println(a)
//    //定义数组和列表，for循环遍历
//    val b = Array(1,2,3)
//    val c = List(4,5,6)
    //-----------------------------------for循环的使用-----------------------------------
//    //b.for+enter(遍历快捷方式)
//    for (elem <- b) { println(elem)}
//    //当循环体简单时，可不写大括号
//    //until：左闭右开
//    for(c <- 1 until 10 ){
//      println(c)
//    }
//    //to：左闭右闭
//    for (c <- 1 to 10) {
//      println(c)
//    }
//    //-----------------------------------if条件句的使用-----------------------------------
//    //if 语句
//    if( a < 3 ) println("a的值小于3") else println( a > 3)
//
//    //spark  对rdd操作，一行写完
    //-----------------------------------if条件句的使用-----------------------------------
//    //函数
//    def sayhello( name:String , age:Int ): Unit ={
//
//      println( name + "今年" + age + "岁了")
//
//    }
//    sayhello("小明",16)
//    //如果在定义函数时为参数赋值，在调用时默认使用此值，如果在定义后重新给此参数赋值，则调用时使用新值
//    def sayhell(name: String = "小王", age: Int): Unit = {
//
//      println(name + "今年" + age + "岁了")
//
//    }
//    sayhell("小明", 17)
//    // => 函数
//    //匿名函数可以当作一个值，赋给变量
//    val sa = (name:String,age:Int) => { println( name + "今年" + age + "岁了")}
//    sa("小米",18)
    //-----------------------------------class的使用-----------------------------------
    //创建类的对象，调用方法
//    val animal = new Animal("小狗")
//    animal.say()

    //scala里的方法相当于函数 函数def ，匿名函数
    //scala和Java之所以可以在一个项目里同时存在，可以相互调用
    // Scala  lamda 表达式 ：spark（Scala）
    // case class 相当于样例类

    //-----------------------------------集合的使用-----------------------------------

    // 集合 set  可以去重
    val set = Set(1,1,2,3,4,5)
    for (a1 <- set) { println( a1 )}

    //map 映射集合(key-value形式) "key" -> value
    val map = Map("灰灰" -> 1, "皮皮" -> 1)
    for (elem <- map) {println(elem._1)}   //._1 输出key值
    for (elem <- map) {println(elem._2)}   //._2 输出value值

    //tuple 元组集合 可以包含不同类型的元素
    val tuple = (7,"灰灰",1.234)
    println("第一个元素："+tuple._1+" 第二个元素是:"+tuple._2+" 第三个元素是:"+tuple._3)

    //tuple 形式
    val a = 6
    if( a > 3){
      (a,"1")
    }


    //伴生类和伴生对象
    //case class()  样例类，已经帮助我们实现了getter和setter方法















  }

}
